package client;

import java.io.Serializable;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import comum.Arquivo;
import comum.Rmi;
import comum.Util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class App implements Serializable{

	private static final long serialVersionUID = 1L;
	private static Rmi rmi;
	String diretorio = "c:\\ClienteFtp\\";
	
	
	public void inicia(String porta){
		try {
			rmi = (Rmi) Naming.lookup("rmi://localhost:"+porta+"/ServerFTP");
		} catch (MalformedURLException | RemoteException | NotBoundException e) {
			e.printStackTrace();
		}
	}
        
        public void uploadArquivo(String dir){
            try {
                System.out.println(dir);
                Arquivo arquivo = new Arquivo(Util.getFile(dir));
                rmi.transferirArquivo(arquivo);
        } catch (RemoteException ex) {
            Logger.getLogger(ClientFTP.class.getName()).log(Level.SEVERE, null, ex);
        }
        }
        
        public Arquivo downloadArquivo(String arquivo) throws RemoteException{
           return rmi.arquivoDownload(arquivo);
         } 
        
        public void recebeArquivo(Arquivo arquivo){
            try {
			FileOutputStream fos = new FileOutputStream(diretorio+"Hermes1.mp3");
			fos.write(arquivo.getBytes());
			fos.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
        }
}
